package main

import (
	//指定包的别名,包里面的函数可以通过别名进行调用。
	//别名可以隔离被引用文件与当前文件，被引用文件的包名将不再有效，而是使用别名进行调用
	//go语言中，处于同一个文件夹下的所有go文件定义的包名必须保持唯一，否则会引起歧义
	dbpool "demo1/db/pool"
	gopool "demo1/toroutine/pool"

	//只是引用包，而不调用其中的函数，可以使用匿名别名，防止依赖报错
	_ "demo1/dbconnection"
	//此处的demo1指定的是go.mod中指定的module名称，非模块文件夹名称,因此模块名称和顶级文件夹名称可以不同
	"demo1/entities"
	"demo1/entity"
	"fmt"
)

func main() {
	person := entity.Person{Name: "Lion"}
	//报名与文件夹名称我直接关系，只是在import使用的时文件名称，写代码时使用的是包名
	//正常来说 一般吧文件夹名和包名保持一致
	person1 := entity1.Person1{
		Name: "123",
	}
	fmt.Println(person)
	fmt.Println(person1)
	//正常来说 模块名和文件夹名要一致，包名也要和文件夹名称保持一致。

	dbpool.Release()
	gopool.Release()

	//导入包中的init函数会在当前main函数之前执行
}
